Data compression assembly having several data-compression channels

ABSTRACT

A data compression assembly has several data-compression channels (DCC). The data-compression channels may be, for example, encoders which encode different programs in accordance with an MPEG standard. A data-compression channel comprises a data compressor (CMP) and a buffer-memory space (BUF). The data compressor compresses input data (D) so as to obtain compressed data (Dc). The buffer-memory space temporarily stores the compressed data and provides the compressed data in the form of an output data stream (DS). 
     Indications (IND) of compressed-data quality (Q[Dc]) versus extent of compression (E[CMP]) are established for respective data-compression channels. A total output bit rate (Rtot) is partitioned over respective output data streams in dependence on these indications. The extent of compression in respective data-compression channels is controlled individually on the basis of output data stream bit rate (R) and amount of compressed data (F) stored in the buffer memory space. This allows a substantially constant quality ratio between the compressed data from respective data-compression channels as well as a substantially constant quality of the compressed data from an individual data-compression channel.

FIELD OF THE INVENTION

The invention relates to a data-compression assembly having severaldata-compression channels. The data-compression channels may be, forexample, encoders which encode different programs in accordance with astandard of the Moving Pictures Experts Group (MPEG). The encodedprograms may be multiplexed so as to form a so-called bouquet. Thebouquet may then be transmitted to a receiver which selects a particularprogram from the bouquet and decodes the selected program.

BACKGROUND ART

The International Application published under number WO 96/20568describes a video signal encoding apparatus for encoding two or morevideo signals. The apparatus comprises an encoder stage for each videosignal. The encoder stage encodes the video signal as a specified numberof data bits per encoded video frame. The encoder stage outputs anencoded video signal at a bit rate determined by the specified number ofdata bits. A target setting sets specified numbers of data bits forrespective encoder stages such that the sum of the respective encoderstage output bit rates remain substantially constant. The respectiveencoded video signals are written into a buffer memory and aresubsequently read from the buffer memory at respectively specifiedoutput rates.

The target setting thus provides a joint-bit rate control: a constantoverall output bit-rate is maintained despite variations in theindividual channel bit rates. The target setting may derive a ratiorelating the respective information contents of the video image framesreceived by the respective encoder stages. The specified number of bitswould then be set by dividing a total number of bits available among thechannels according to the ratio.

SUMMARY OF THE INVENTION

Let it be assumed that a data compression assembly has severaldata-compression channels. Let it further be assumed that adata-compression channel comprises a data compressor and a buffer memoryspace. The data compressor compresses input data so as to obtaincompressed data. The buffer-memory space temporarily stores thecompressed data and provides the compressed data in the form of anoutput data stream. The background-art encoding apparatus is an exampleof such a data-compression assembly.

It is an object of the invention that the data-compression assemblyyields a relatively good quality of compressed data. To that end, theinvention takes the following aspects into consideration.

Compressed-data quality will generally decrease as the extent to whichthe data is compressed increases, and vice versa. For example, in MPEGvideo encoding, the extent to which a picture is compressed depends on aquantization parameter. An encoded picture will comprise relatively fewbits if the quantization parameter has a high value. However, theencoded picture will then have a relatively poor resolution. Conversely,an encoded picture have a relatively good resolution if the quantizationparameter has a low value. However, the encoded picture will thencomprise relatively many bits.

The extent of compression may be controlled, for example, by means of atarget. This is done in the background art. A target is a desired numberof bits for an encoded picture. The quantization parameter is controlledsuch that the target is substantially achieved. When encoding a picture,the quantization parameter may need to have a relatively high value inorder to achieve the target. In that case, one could say that thepicture is difficult to compress. Conversely, the target may be achievedwith the quantization parameter having a relatively low value. In thatcase, one could say that the picture is easy to compress. Thus,supposing that there is a fixed target, a picture which is easy tocompress will have a relatively good quality once it has been encoded,whereas a picture which is difficult to compress will have a relativelypoor quality.

The background art seems to apply the following principle. There is atotal target for each successive set of concurrent pictures which are tobe encoded in the different encoding channels. The total target is suchthat the sum of the respective encoder stage output bit rates remainssubstantially constant. Thus, the total target should be the same foreach set of concurrent pictures. For each set, it is established whichpictures are relatively easy to compress and which pictures arerelatively difficult to compress. The total target is partitioned amongthe pictures in the following manner. A picture which is ratherdifficult to compress is given a relatively high individual target.Conversely, a picture which is relatively easy to compress is given arelatively low individual target. Thus, in a manner of speaking, thereis a fixed budget in terms of number of bits to be spend in encoding aset of concurrent pictures. The budget is partitioned such thatconcurrent compressed pictures have a substantially uniform quality.

The principle applied in the background art has the followinginconvenience. It may happen that, at a certain instant, there arerelatively many pictures which are difficult to compress whereas, at another instant, there are relatively few pictures of that kind. Since thetotal target is constant, pictures which are difficult to compress willhave a relatively low individual target at the former instant whereasthese pictures will have a relatively high individual target at thelatter instant. Consequently, the quality of the compressed pictureswill vary in time.

According to the invention, indications of compressed-data qualityversus extent of compression are established for respectivedata-compression channels. A total output bit rate is partitioned overrespective output data streams in dependence on these indications. Theextent of compression in respective data-compression channels iscontrolled individually on the basis of output data stream bit rate andamount of compressed data stored in the buffer memory space.

Since, in the invention, the extent of compression in respectivedata-compression channels is controlled individually, a data compressionchannel has its own budget in terms of number of bits it can spend forcompressing data over a certain future period in time. The budget isdetermined by the output data stream bit rate and the amount of codeddata stored in the buffer memory space. When a data-compression channelreceives data which is difficult to compress, the output data stream bitrate of that data-compression channel can be increased. As a result, thebudget will increase. How many bits will be spend for encoding aparticular data portion is decided by the data-compression channelindividually.

Thus, in the invention, the respective encoding channels have flexiblebudgets and the decision how to spend a budget is locally made. Incontrast, in the background art, there is a fixed budget and thedecision how to spend the budget is centrally made. Thus, the inventionprovides greater flexibility in data-compression control. Consequently,the invention allows the respective data-compression channels to bettermaintain the quality of compressed data at a substantially constantlevel.

The invention and additional features, which may be optionally used toimplement the invention to advantage, are apparent from and will beelucidated with reference to the drawings described hereinafter.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a conceptual diagram illustrating basic features of theinvention as claimed in claim 1.

FIG. 2 to is a conceptual diagram illustrating additional features asclaimed in claim 2.

FIG. 3 is a block diagram illustrating an example of a video encoderassembly in accordance with the invention.

FIG. 4 is a block diagram illustrating an encoder which forms part ofthe video encoder assembly illustrated in FIG. 3.

FIG. 5 is a flow chart illustrating a method of joint bit-rate controlfor the video encoder assembly illustrated in FIG. 3.

FIG. 6 is a graph illustrating, for an encoder in the video encoderassembly illustrated in FIG. 3, transfer of encoded data via the outputbuffer of the encoder and via the input buffer of a hypotheticaldecoder.

FIG. 7 is a graph illustrating a method of calculating a minimum new bitrate and a maximum new bit rate for an encoder in the FIG. 3 videoencoder assembly.

FIG. 8 is a flow chart illustrating an example of a method ofquantization parameter control for the encoder illustrated in FIG. 4.

DETAILED DESCRIPTION OF THE DRAWINGS

The following remarks relate to reference signs. Like entities aredesignated by like letter references in all the Figures. Several similarentities may appear in a single Figure. In that case, a digit or asuffix is added to the letter reference in order to distinguish likeentities. The digit or the suffix may be omitted for convenience or itmay be replaced by an asterisk in the case where its value is notimportant (do not care value). This applies to the description as wellas the claims.

FIG. 1 illustrate basic features of the invention in solid lines. A datacompression assembly has several data-compression channels DCC. Adata-compression channel comprises a data compressor CMP and abuffer-memory space BUF. The data compressor compresses input data D soas to obtain compressed data Dc. The buffer-memory space temporarilystores the compressed data and provides the compressed data in the formof an output data stream DS.

Indications IND of compressed-data quality Q[Dc] versus extent ofcompression E[CMP] are established for respective data-compressionchannels. A joint bit-rate controller JBRC partitions a total output bitrate Rtot over respective output data streams DS in dependence on theseindications. The extent of compression in respective data-compressionchannels is controlled individually on the basis of output data streambit rate R and amount of compressed data F stored in the buffer memoryspace.

To advantageously implement the features illustrated in FIG. 1, thefollowing aspects have been taken into consideration. It can be saidthat a data portion is difficult to compress if the data portion can becompressed to a relatively small extent only for a given compressed dataquality or if the compressed data quality is relatively poor for a givenextent of compression. There are various manners to establishindications of compressed data quality versus extent of compression. Forexample, these indication may be established on the basis of recentcompression experiences. It is then assumed that a data portion will bedifficult or easy to compress if a preceding data portion was difficultor easy to compress. This approach will give satisfactory results ifthere are gradual changes only in terms of difficulty to compress.

FIG. 2 illustrates the following features which may be optionallyapplied in addition to the features illustrated in FIG. 1. Adata-compression channel DCC carries out two types of data compressionone after the other. There is a first data compression DC1 forestablishing the indication IND of compressed-data quality Q[Dc] versusextent of compression E[CMP]. There is a second data compression DC2 forproviding compressed data Dc which will form part of the output datastream DS.

The features illustrated in FIG. 2 provide the following advantages. Theindication includes a compression experience for data which has yet tobe compressed in order to form part of the data stream. Consequently,the indication will be more up-to-date and thus more precise than anindication which is based on compression of previous data only. Sincethe indication is more precise, the total bit rate can be partitionedmore precisely among the data streams. That is, the partitioning of thetotal bit rate can better match the needs of the data-compressionchannels in terms of number of bits. Consequently, the FIG. 2 featurescontribute to a satisfactory quality.

FIG. 3 illustrates an example of a video encoder assembly incorporatingthe features described hereinbefore with reference to FIGS. 1 and 2. Thevideo encoder assembly receives several video programs VP and, inresponse, provides a multiplex MPEG data stream MMDS. The multiplex MPEGdata stream MMDS contains an MPEG encoded version of each video programVP. The video encoder assembly comprises several encoders ENC, amultiplexer MUX and a joint bit-rate controller JBRC.

The video encoder assembly basically operates as follows. Each encoderENC encodes a different video program and provides an MPEG data streamMDS to the multiplexer. The multiplexer combines the MPEG data streamsso as to obtain the multiplex MPEG data stream MMDS. Each encoderfurther establishes a bit-rate control indication IND with each picturein the video program it encodes. The bit-rate control indication is anestimation of how difficult it is, or how easy, to encode the currentpicture and a number subsequent pictures. A picture is difficult or easyto encode if, for a given quality, the coding of the picture producesrelatively many or relatively few bits, respectively.

The joint bit-rate controller partitions a total bit rate Rtot among thevideo encoders on the basis of the bit-rate control indications itreceives. That is, the joint bit-rate controller allocates a certain bitrate R to each encoder, the sum of these bit rates being the total bitrate. An encoder supplies its MPEG data stream to the multiplexer at thebit rate it has been allocated. The joint bit-rate controller willallocate a higher bit-rate to an encoder receiving pictures which aredifficult to encode than an encoder receiving pictures which are easy toencode. By doing so, the joint bit-rate controller maintains asubstantially constant quality ratio between encoded pictures providedby the respective encoders. Furthermore, the joint bit-rate controllerhelps the respective encoders to provide successive encoded pictures ata substantially constant quality. This will be explained in greaterdetail hereinafter.

FIG. 4 illustrates an encoder ENC which forms part of the video encoderassembly illustrated in FIG. 3. The encoder comprises encoding circuitryEC, an output buffer OBUF and a controller CON. It basically operates asfollows. The encoding circuitry encodes successive pictures P independence on a quantization parameter QP. The encoding circuitrysupplies encoded pictures Pe to the output buffer OBUF. The outputbuffer outputs the encoded pictures in the form of an MPEG data streamhaving a bit rate R.

There are three types of encoding in accordance with which a picture maybe encoded: I-type, P-type and B-type encoding. A picture which isI-type, P-type or B-type encoded will be referred to as I-, P- andB-picture, respectively, hereinafter. Furthermore, there is a cyclicpattern in the type of encoding which is applied. Each cycle begins withan I-type encoding and is followed by one or more P- and B-typeencodings. A cycle covers N pictures, N being an integer. For example,for N=6, the cyclic encoding pattern may be I-B-B-P-B-B.

The controller controls the bit rate on the basis of joint-bit ratecontrol messages JBRCM it receives from the joint bit-rate controller. Ajoint bit-rate control message defines a bit rate for the encoder andfurther defines when this bit rate has to be applied. Thus, in effect,the joint-bit rate control messages define a bit rate profile for theencoder. The controller controls the bit rate in accordance with thebit-rate profile. It does so by means of a bit-rate control signal RCwhich determines the rate at which encoded picture data is read from theoutput buffer.

The quantization parameter substantially determines the quality of theencoded pictures. The lower its value while encoding a picture, thehigher the quality of the encoded picture is, but the more bits theencoded picture will comprise. The quantization parameter shouldpreferably have a value which is substantially constant and as low aspossible without causing underflow or overflow in an input buffer of adecoder receiving the MPEG data stream.

The controller controls the quantization parameter on the basis ofseveral parameters. One parameter is the bit-rate profile as defined bythe joint bit-rate control messages. An other parameter is the amount ofencoded data F contained in the output buffer. These two parametersdefine the room, in terms of number of bits, which is available forencoding a group of pictures. An other parameter used for quantizationparameter control, are encoding results ER. The encoding results provideinformation on how to partition the available room among the picturessuch that the quantization parameter has a substantially constant value.An encoding result for a picture, or a portion thereof, may be expressedas follows: the number of bits produced by the encoding of the picture,or its portion, multiplied by the quantization parameter value which hasbeen applied. This product will hereinafter be referred to ascomplexity.

The encoder may operate in a single-pass mode or in a double-pass mode.In the single pass mode, the encoding circuitry encodes a pictures onlyonce. That is, a picture passes the encoding circuitry, as it were, onlyonce. During that single pass, the controller controls the quantizationparameter using encoding results relating to previous pictures only. Inthe double-pass mode, the encoding circuitry encodes a picture twice.That is, a picture passes the encoding circuitry, as it were, twice. Inthe first pass, the picture is encoded while the controller applies afixed quantization parameter. The first pass serves to obtain encodingresults relating to the picture. In the second pass, the controllercontrols the quantization parameter as described hereinbefore using theencoding results obtained in the first pass. Thus, the quantizationparameter control will generally be better in the double pass mode thanin the single pass mode.

The controller further establishes a bit-rate control indication INDwith each picture to be encoded. In the single-pass mode, the encoderestablishes the bit-rate control indication on the basis of encodingresults relating to preceding pictures only. In the dual-pass mode, theencoder establishes the bit-rate control indication on the basis ofencoding results which include an encoding result of the currentpicture. FIG. 5 illustrates a method of joint bit-rate control for thevideo encoder assembly illustrated in FIG. 3. In an initialization stepGS1, the joint-bit rate controller assigns a target bit rate Rtarget toeach encoder ENC. The target bit rate Rtarget determines the averagequality of the encoded pictures provided by the encoder concerned.

The following series of steps are carried out repetitively. For example,they may be carried out every picture period. In anindication-calculation step GS2, each encoder calculates a bit-ratecontrol indication IND and sends the bit-rate control indication to thejoint bit-rate controller. The bit-rate control indication may becalculated as follows. The bit-rate control indication is an averagepicture complexity AVX multiplied by the target bit rate for the encoderdivided by a measure of luminance entropy ACT. The average picturecomplexity is calculated as follows. It is assumed that for the N−1subsequent pictures each I-, P- and B-picture has a complexity which isthat of the most recent encoded I-, P- and B-picture, respectively. Theaverage picture complexity is then the average complexity of the currentpicture and the N−1 subsequent pictures. The luminance entropy is theaverage of macro block activities in the most recent encoded picturewhich is the previous picture in the single-pass mode or the currentpicture in the dual-pass mode. Macro block activity is defined in thedocument ISO/IEC JTC1/SC29/WG11/N0400, April 1993, “Test Model 5, DraftRevision 2”, section 5.2.2, page 60.

In a bit-rate calculation step GS3, the joint bit-rate controllercalculates, for each encoder, an optimal bit rate Ropt which shouldideally be allocated to the encoder. The optimal bit rate for an encoderis the bit-rate control indication of the encoder divided by the sum ofall bit-rate control indications multiplied by the total bit-rate. Thus,in effect, the optimal bit rate is a portion of the total bit rate. Thesize of the portion corresponds to the contribution which the bit-ratecontrol indication makes to the sum of all bit rate control indications.

In switch-time examination step GS4, a number of different switch timesTsw are examined. A switch time is an instant when the bit-rates of therespective MPEG data streams may be modified. Some switch times, or evenall switch times, may be sooner than the current instant plus a constantend-to-end delay. The constant end-to-end delay is the differencebetween the instant when an encoded picture is written into the outputbuffer of an encoder, and the instant when the encoded picture is readfrom an input buffer of a hypothetical decoder which is directly coupledto the encoder. That is, there is no transmission delay between theencoder and the hypothetical decoder.

The switch-time examination step GS4 comprises two sub-steps which arecarried out for each switch time individually.

In a bit-rate clipping sub-step GS4 a, the joint bit rate controllerestablishes a clipped optimal bit rate Roptc for each encoder in thefollowing manner. The joint-bit rate controller first calculates amaximum new bit rate Rmax and a minimum new bit rate Rmin for MPEG-2compliance of the encoder. The encoder is MPEG-2 compliant if the MPEGdata stream it provides neither causes underflow nor overflow in adecoder input buffer. Overflow will occur if the new bit rate exceedsthe maximum new bit rate and underflow will occur if the bit new rate isbelow the minimum new bit rate. The manner in which the joint bit-ratecontroller calculates the minimum new bit rate and the maximum new bitrate will be explained in greater detail hereinafter. The clippedoptimal bit rate is the optimal bit rate defined hereinbefore unless theoptimal bit rate causes underflow or overflow. In that case, the clippedoptimal bit rate is the minimum bit rate or the maximum bit rate,respectively.

In a delta-rate calculation sub-step GS4 b, the joint bit ratecontroller calculates for each encoder a delta rate ΔR. It is assumedthat the bit rate is switched to the clipped optimal bit rate at theswitch time under investigation. The joint bit-rate controllercalculates the average bit rate which will then be obtained over a timeinterval covering the current picture and the N−1 subsequent pictures.The delta rate is difference between the optimal bit rate and theaverage bit rate thus calculated. Ideally, the delta rate should be zerofor each encoder.

In a switch-time selection step GS5, one of the investigated switchtimes is selected in the following manner. For each switch time, it isestablished which delta rate has highest value. This delta rate will bereferred to as maximum delta rate. The higher the delta rate is, themore the bit rate concerned deviates from the optimal bit rate and,therefore, the greater the deviation from a desired quality ratiobetween the MPEG data streams. The switch time for which the maximumdelta rate has the lowest value, is selected: Tswsel=TswMIN(MAX(ΔR)).

In a bit-rate control step GS6, the joint bit-rate controller sends ajoint bit-rate control message JBRCM to each encoder. The joint bit-ratecontrol message specifies the selected switch time. It further specifiesthe clipped optimal bit rate for the encoder which applies to theselected switch time. Thus, the joint-bit rate controller programs eachencoder to provide its MPEG data stream at the clipped optimal bit rateonce the selected switch time is reached. Until that time, therespective encoders output their MPEG data streams as defined inprevious bit-rate control messages.

FIG. 6 illustrates, for an encoder in the video encoder assemblyillustrated in FIG. 3, transfer of encoded data via the output buffer ofthe encoder and via the input buffer of a hypothetical decoder. FIG. 6is a graph of which the horizontal axis represents time T and of whichthe vertical axis represents amount of encoded data NB produced by theencoder in terms of number of bits. The vertical axis further indicatesto which picture P the encoded data belongs. The amount of encoded datagrows with each successive picture P which has been encoded.

The graph illustrated in FIG. 6 comprises three curves: A, B and C.Curve A represents encoded data which is written into the output bufferof the encoder. For example, curve A shows that encoded data belongingto picture P[i] is written into the output buffer at instant T[i]. Eachpicture period Tpp, a new picture is written into the output buffer.

Curve B represents encoded data which is read from the output buffer soas to form the MPEG data stream. The slope of curve B is defined by thebit rate of the MPEG data stream. Curve B shows, for example, thatencoded data belonging to picture P[i] is read from the output bufferafter a delay ΔTob with respect to instant T[i]. It is assumed that thehypothetical decoder receives the MPEG data stream without anytransmission delay. As a result, curve B also represents encoded datawhich is written into the input buffer of this decoder. That is, pictureP[i] is written into the input buffer at instant T[i]+ΔTob.

Curve C represents encoded data which is read from the input buffer ofthe hypothetical decoder. It is assumed that a picture is read instantlyfrom the input buffer. That is, it takes no time to read a picture. Forexample, curve C shows that encoded data belonging to picture P[i] isinstantly read from the input buffer at instant T[i]+ΔTeed. ΔTeedrepresents a constant end-to-end delay. The constant end-to-end delay isthus the difference between the instant when a picture has been writteninto the output buffer of the encoder, and the instant when a picturehas been read from the input buffer of the hypothetical decoder. Itholds that ΔTeed=ΔTob+ΔTib, ΔTib representing an input buffer delay. Theinput buffer delay defines when a picture should be read from an inputbuffer of a decoder.

At any instant, the amount of data contained in the input buffer of thehypothetical decoder is the difference between curve B and C at thatinstant. For MPEG compliance, this amount of data should remain betweenan upper bound and a lower bound. If this is the case, it is ensuredthat any MPEG-compliant decoder which receives the MPEG data stream willneither underflow or overflow. In this respect, any transmission delaybetween encoder and decoder plays no role. This is because the MPEG datastream comprises control words which define for each picture when thepicture has to be read from the input buffer. These control words defineΔTib for each picture such that ΔTob+ΔTib=ΔTeed. Consequently, it alwaysholds that the amount of data contained in the input buffer of thehypothetical decoder, will also be contained in the input buffer of areal decoder after a delay ΔTtrans, ΔTtrans being the transmissiondelay. Consequently, if the input buffer of the hypothetical decodernever underflows nor overflows, the input buffer of the real decoderwill neither.

Let it be assumed that the current time is instant T[i]: picture P[i] isjust about to be encoded and, consequently, just about to be writteninto the output buffer of the encoder. This implies that any instantlater than T[i] is the future. It has already been mentioned that anyencoded picture which is written into the output buffer will be readfrom the input buffer after a delay ΔTeed. Consequently, the future ofcurve C can exactly be predicted within a time interval which extendsΔTeed from the current time. It solely depends on the future of curve Bwithin the same time interval whether there will be underflow oroverflow, or neither of those two. The future of curve B is defined by abit rate profile for the MPEG data stream. The bit rate profile isdetermined by the joint bit-rate controller as explained hereinbeforewith reference to FIG. 5.

FIG. 7 illustrates a method of calculating a minimum new bit rate and amaximum new bit rate for an encoder in the FIG. 3 video encoderassembly. The calculation applies for a bit-rate switch at a futureinstant T[i]+ΔTsw, with ΔTsw being comprised between 0 and ΔTeed. FIG. 7is a graph which recaptures the features of the graph illustrated inFIG. 6. For the sake of simplicity, it is assumed that the bit rate issubstantially constant and equal to R1 until T[i]+ΔTsw. The amount ofdata below which the input buffer will underflow is supposed to be zero.The amount of data beyond which the input buffer will overflow issupposed to be OVR. The graph illustrated in FIG. 7 comprises a curve C+which is curve C lifted by an amount equal to OVR.

Curve B is extended with two slopes: Rmin and Rmax. Slope Rmin indicatesthe minimum new bit rate below which underflow will occur. Slope Rmintouches one point of curve C only. If slope Rmin were less steep,underflow would occur. Slope Rmax indicates the maximum new bit ratebeyond which overflow will occur. Slope Rmax touches one point of curveC+ only. If slope Rmax were steeper, overflow would occur.

The joint bit-rate controller can calculate curve C and C+ for eachencoder on the basis of messages provided by the encoder. A message may,for example, indicate the amount of encoded data contained in an encodedpicture and the instant when the encoded picture will be read from theinput buffer of the hypothetical decoder. The joint bit-rate controllercan also calculate curve B until the instant T[i]+ΔTsw on the basis ofthe bit-rate profile of the encoder. The bit-rate profile is determinedby the joint-bit rate controller itself. Thus, for calculation of curveB, it is sufficient that the joint-bit rate controller memorizes thebit-rate control messages it has supplied to the encoder in a recentpast. Once curve C and C+ have been calculated for the time intervalbetween T[i] and T[i]+ΔTeed, and curve B has been calculated for thetime interval between T[i] and T[i]+ΔTsw, the joint bit rate controllercan calculate the minimum and maximum new bit rate which may be appliedat the switch time T[i]+ΔTsw.

FIG. 8 illustrates an example of a method of quantization parametercontrol in the encoder illustrated in FIG. 4. The method comprises aplurality of steps S1-S9 which are carried out for each picture P. Thesteps S1-S9 may also be carried out for each slice in the picture P. Itis assumed that the encoder operates in the single pass mode describedhereinbefore. It should be noted that, in MPEG, there are threedifferent types of encoding a picture: an I-type encoding, a P-typeencoding and a B-type encoding. A picture which undergoes an I-type,P-type or B-type encoding will be referred to as a type I, P or Bpicture, respectively.

In a step S1, a picture complexity PCX is calculated for each type ofpicture I, P and B. Each picture complexity PCX is a product of thenumber of bits NOB produced by a recent encoding and the quantizationparameter value QPAR used in the recent encoding. Each picturecomplexity PCX is in fact a past encoding experience for the type ofencoding concerned. It can be used to predict, for a certainquantization parameter value QPAR, which number of output bits will beobtained if a subsequent picture is encoded. The picture complexity PCXfor the type encoding to be used, may be divided by the quantizationparameter value QPAR. The outcome of this division is a prediction,based on the past encoding experience, of the number of output bitswhich will be obtained.

In a step S2, a group-of-pictures complexity GCX is calculated. Thegroup-of-pictures complexity GCX is the sum of three terms. Each termrelates to a different picture type and is the picture complexity PCX ofthe type concerned, multiplied by the number M of pictures of the typeconcerned within a group of pictures, divided by a weighing factor K forthe type concerned. The group-of-pictures complexity GCX is also in facta past encoding experience, broader than the picture complexity PCX,which can be used to calculate a value for the quantization parameterQPAR. For example, the group-of-pictures complexity GCX may be dividedby a desired number of output bits to be obtained for N subsequentpictures. Accordingly, a value for the quantization parameter QPAR isobtained with which, based on past encoding experience, the encoding ofthe N subsequent pictures should produce the desired number of bits. Thelatter, however, need not be so.

In a step S3, a picture-coding estimation PCE is calculated for eachtype of picture I, P and B. The picture-coding estimation PCE is productof a first and a second term. The first term is the picture complexityPCX of the type concerned divided by the weighing factor K of the typeconcerned. The second term is an initial value VALint for a groupencoding-target GCT divided by the group-of-pictures complexity GCXcalculated in step S2. The group encoding-target GCT is the number ofbits which should be obtained by encoding the current picture and theN−1 subsequent pictures. The initial value VALint for the groupencoding-target GCT is the number of bits which will be outputted fromthe output buffer during a period covering the current picture and theN−1 subsequent pictures. Thus, the picture-coding estimation PCE isbased on the following target: the amount of data which goes into theoutput buffer OBUF should equal the amount of data which is removed fromthe output buffer OBUF during the period concerned. The second term ofthe picture-coding estimation PCE represents a value for thequantization parameter QPAR with which, based on past encodingexperience, this target should be achieved.

It should be noted that initial value VALint of the group coding targetGCT depends on the joint bit-rate control messages received by theencoder. It has been explained hereinbefore with reference to FIG. 3,that these joint bit-rate control messages define a bit rate profile forthe encoder. The bit-rate profile determines the amount of bits thenumber of bits which will be outputted from the output buffer OBUFduring a period covering the current picture and the N−1 subsequentpictures. Since this number of bits is the group coding target GCT, thejoint bit-rate control messages thus define this target. Consequently,the picture coding estimation PCE depends on the joint bit-rate controlmessages.

In a step S4, a predicted buffer fullness BF[nextI] at the nextI-picture is calculated. The predicted buffer fullness BF[nextI] isbased on the initial value VALint for the group-coding target GCT andthe picture-coding estimation PCE derived therefrom. The predictedbuffer fullness BF[nextI] is the current fullness BF[now] of the outputbuffer plus a sum Σ of picture-coding estimations which comprises apicture-coding estimation PCE for each picture until the next I-picture,minus the number of bits OUT[nextI] which will be outputted from theoutput buffer until the next I-picture.

In a step S5, a buffer fullness surplus ΔBF is calculated. The bufferfullness surplus ΔBF is the difference between the predicted bufferfullness BF[nextI] and a desired buffer fullness BF[des] at the next Ipicture. The desired buffer fullness BF[des] is preferably defined insuch a manner that it corresponds to an input buffer at a decoding endbeing substantially filled with data just before decoding the I picture.

In a step S6, an adapted value VALadp for the group encoding-target GCTis calculated. The adapted value VALadp for the group encoding-targetGCT is the initial value for VALint the group encoding-target GCT, whichis the number of bits which will be outputted from the output bufferduring a period covering the current picture and the subsequent N−1pictures, minus the buffer fullness surplus ΔBF.

In a step S7, a picture encoding-target PCT is calculated for encodingthe current picture. The picture encoding-target PCT is based on theadapted value VALadp of the group encoding-target GCT in the same manneras the picture-coding estimation PCE is based on the initial valueVALint of the group encoding-target GCT. The picture encoding target PCTis a product of a first term and a second term. The first term is thepicture complexity PCX belonging to the type of the picture to beencoded, I, B or P, divided by the weighing factor K used for that type.The second term is the adapted value VALadp for the group encodingtarget GCT divided by the group-of-pictures complexity GCX.

In a step S8, the picture encoding target PCT is verified so as toobtain a verified picture encoding target PCTver. In this step, it ischecked whether or not an underflow or an overflow will occur at adecoding end if the encoding of the current picture produces a number ofbits equal to the picture encoding target PCT. If there is neitherunderflow nor overflow, the verified picture encoding target PCTver willequal the picture encoding target PCT, that is, the picture encodingtarget PCT is not changed. If, however, the picture encoding target PCTwill lead to underflow or overflow, the picture encoding target PCT iseffectively clipped in replacing it by a value for which neitherunderflow nor underflow occurs.

In a step S9, the quantization parameter value QPAR is controlled duringthe encoding of the current picture in the following manner. Thequantization parameter value QPAR is the sum of a first term and asecond term. The first term is the picture complexity PCT of the typeconcerned divided by the verified picture encoding target PCTver. Thesecond term is the product of a deviation-from-target ΔTGT and areaction parameter RP. The deviation-from-target ΔTGT is the number ofbits NOBP produced thus far by encoding the current picture, minus theverified picture encoding target PCTver multiplied by the ratio of thetime lapsed thus far t-t0 in encoding the current picture, and thepicture period Tp. The reaction parameter RP is 512 divided by thebit-rate R of the MPEG data stream DS.

With regard to the quantization parameter control QPAR, the following isnoted. The first term is a global or long-term strategy for controllingthe quantization parameter value QPAR. Let is be assumed that thepicture encoding target is not clipped, meaning that the verifiedpicture encoding target PCTver equals the picture encoding target PCT.In that case, the first term corresponds to the weighing factor K forthe picture concerned multiplied by the group-of-pictures complexity GCXdivided by the adapted value VALadp of the group encoding-target GCT.The group-of-pictures complexity GCX consists of a sum of products of“number of bits actually produced in the recent past” and “thequantization parameter which was applied”. Thus, the first termeffectively represents a value for the quantization parameter QPARwhich, based on past experience, is expected to result in a number ofdesired bits. The second term is a local or short-term strategy foradjusting the quantization parameter QPAR. It is a kind of safetymeasure which prevents the encoding from producing a number of bitswhich deviates to a relatively large extent from the targeted number ofbits being the verified picture encoding target PCTver.

The drawings and their description hereinbefore illustrate rather thanlimit the invention. It will be evident that there are numerousalternatives which fall within the scope of the appended claims. In thisrespect, the following closing remarks are made.

There are numerous ways of physically spreading functions or functionalelements over various units. In this respect, the drawings are verydiagrammatic, each representing only one possible embodiment of theinvention. Thus, although a drawing shows different functional elementsas different blocks, this by no means excludes the implementation ofsome functional elements or all functional elements as a single physicalunit. For example, the output buffers of the encoders shown in FIG. 3may be implemented as a single memory circuit as described in theInternational Application published under number WO 96/20568.

Although FIG. 8 illustrates an example of a method of quantizationparameter control on the basis of the output bit rate, this by no meansexcludes other methods of quantization parameter control. All whatmatters, is that the extent of compression, which in the FIG. 8 methodis controlled by a means of target, is calculated on the basis of theoutput bit rate.

Any reference sign in a claim should not be construed as limiting theclaim.

What is claimed is:
 1. A method of controlling a data compressionassembly having several data-compression channels (DCC), adata-compression channel (DCC) comprising: a data compressor (CMP) forcompressing input data (D) so as to obtain compressed data (Dc); abuffer-memory space (BUF) for temporarily storing the compressed data(Dc) and for providing the compressed data (Dc) in the form of an outputdata stream (DS); characterized in that the method comprises the stepsof: establishing indications (IND) of compressed-data quality (Q[Dc])versus extent of compression (E[CMP]) for respective data-compressionchannels (DCC); partitioning (JBRC) a total output bit rate (Rtot) overrespective output data streams (DS) in dependence on the indications(IND); controlling (CON) the extent of compression in respectivedata-compression channels (DCC) individually on the basis of output datastream bit rate (R) and amount of compressed data (F) stored in thebuffer memory space (BUF).
 2. A method of controlling as claimed inclaim 1, characterized in that for a data-compression channel (DCC) itcomprises the steps of: a first data compression (DC1) for establishingthe indication (IND) of compressed-data quality (Q[Dc]) versus extent ofcompression (E[CMP]), and a second data compression (DC2) for providingcompressed data (Dc) which will form part of the output data stream(DS).
 3. A data-compression assembly having several data-compressionchannels (DCC), a data-compression channel (DCC) comprising: a datacompressor (CMP) for compressing input data (D) so as to obtaincompressed data (Dc); a buffer-memory space (BUF) for temporarilystoring the compressed data (Dc) and for providing the compressed data(Dc) in the form of an output data stream (DS); characterized in thatrespective data-compression channels (DDC) are arranged to: control(CON) the extent of compression individually on the basis of output datastream bit rate (R) and amount of compressed data (F) stored in thebuffer-memory space (BUF); establish indications (IND) ofcompressed-data quality versus extent of compression; and in that thedata-compression assembly comprises a joint bit-rate controller (JBRC)for partitioning a total output bit rate (Rtot) over respective outputdata streams (DS) in dependence on the indications (IND).
 4. A computerprogram product for a data-compression assembly having severaldata-compression channels (DCC), a data-compression channel (DCC)comprising: a data compressor (CMP) for compressing input data (D) so asto obtain compressed data (Dc); a buffer-memory space (BUF) fortemporarily storing the compressed data (Dc) and for providing thecompressed data (Dc) in the form of an output data stream (DS); andcontrol circuitry (JBRC, CON); the computer program product beingcharacterized in that it comprises a set of instructions which, whenloaded into the control circuitry (JBRC, CON), causes thedata-compression assembly to carry out the method as claimed in claim 1.5. A method of controlling a video-encoding assembly having severalvideo-encoding channels (ENC), a video-encoding channel (ENC)comprising: video-encoding circuitry (EC) for encoding video data so asto obtain encoded video data; a buffer memory space (OBUF) fortemporarily storing the encoded video data and for providing the encodedvideo data in the form of an output data stream (MDS); characterized inthat the method comprises the steps of: establishing (GS2)picture-complexity indications (IND) for the respective video-encodingchannels, a picture-complexity indication (IND) for a video-encodingchannel relating to an average complexity of pictures (AVX) to beencoded by that video-encoding channel; partitioning (GS3-GS6) a totaloutput bit rate (Rtot) over respective output data streams (MDS) independence on the picture-complexity indications (IND); and, within avideo-encoding channel (ENC), determining (S1-S6) a target (GCT) for agroup of pictures to be encoded on the basis of the output data streambit rate of the video encoding channel and the amount of encoded videodata contained in the buffer memory space; deriving (S7,S8) a target(PCT) for a current picture to be encoded from the target (GCT) for thegroup of pictures; and controlling (S9) the video encoding circuitry(EC) on the basis of the target (PCT) for the current picture so thatthe encoding of the current picture produces an amount of encoded videodata which is substantially equal to said target.